package com.ljx.genericity.genericity01;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author LJX
 * @Description: TODO
 * @Date: 2022/10/25 15:41
 * @Version 1.0
 */

public class Test01{
	public static void main(String[] args) {

		Point<Integer,String> point01 = new Point<>();
		// 无需强制类型转换，不不用担心安全问题
		Integer a = point01.getA();
		String b = point01.getB();
		System.out.println("point01 = " + point01);

		// 也可以使用多种数据类型
		Point<String,Integer> point02 = new Point("a",3);
		System.out.println("point02 = " + point02);
	}
}

@Data
@AllArgsConstructor
@NoArgsConstructor
class Point<T,E> {
	// 当我们不知道到底要用什么类型的数据的时候，
	// 此时我们需要将我们类 方法或者属性来定义一种泛型类型
	// 在我们创建对象的时候，我们知道我们要什么类型的时候再传入什么样的数据类型
	// 也可以使用多种数据类型,为我们提供所需的不同的参数类型

	private T a;
	private E b;
}